package com.yc.cloud.admin.service;

import com.yc.cloud.admin.dto.RecordingConfig;

import java.util.List;

/**
 * 录制调度服务接口
 *
 * @author kinggu
 * @since 2025-09-17
 */
public interface RecordingScheduleService {

    /**
     * 执行录制状态检查和调度
     * 定时任务的核心方法
     */
    void executeRecordingSchedule();

    /**
     * 检查单个摄像头的录制状态并执行相应操作
     *
     * @param cameraId 摄像头ID
     */
    void checkAndScheduleCamera(Long cameraId);

    /**
     * 开始录制
     *
     * @param cameraId 摄像头ID
     * @param config 录制配置
     * @return 是否成功
     */
    boolean startRecording(Long cameraId, RecordingConfig config);

    /**
     * 停止录制
     *
     * @param cameraId 摄像头ID
     * @return 是否成功
     */
    boolean stopRecording(Long cameraId);


    /**
     * 获取所有活跃的摄像头ID列表
     *
     * @return 摄像头ID列表
     */
    List<Long> getAllActiveCameraIds();

}